package com.skh.string;

import java.util.Arrays;

/**
 * @Author: skh
 * @Date: 2020/3/31 14:47
 * @Description: “气球” 的最大数量
 */
public class MaxNumberOfBalloons {

    /**
     * 给你一个字符串 text，你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"（气球）。
     *
     * 字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
     *
     * 示例 1：
     *
     * 输入：text = "nlaebolko"
     * 输出：1
     * 示例 2：
     *
     * 输入：text = "loonbalxballpoon"
     * 输出：2
     * 示例 3：
     *
     * 输入：text = "leetcode"
     * 输出：0
     *
     */

    public int maxNumberOfBalloons(String text) {
        //统计balon5个字符的数量, l和o的数量需要减半
        int[] balon = new int[5];
        char[] chars = text.toCharArray();
        for (char c : chars) {
            switch (c){
                case 'b': {
                    balon[0]++;
                    break;
                }
                case 'a': {
                    balon[1]++;
                    break;}
                case 'l': {
                    balon[2]++;
                    break;
                }
                case 'o': {
                    balon[3]++;
                    break;
                }
                case 'n': {
                    balon[4]++;
                    break;
                }
            }
        }

        balon[2] /= 2;
        balon[3] /= 2;


        //排序,返回最小的数量
        Arrays.sort(balon);

        return balon[0];
    }

    public static void main(String[] args) {
        MaxNumberOfBalloons maxNumberOfBalloons = new MaxNumberOfBalloons();
        int balon = maxNumberOfBalloons.maxNumberOfBalloons("balon");
        System.out.println("balon = " + balon);
    }
}
